// 通过将各个人说的自然语言形式化为真假的判断语句，以及将各个人的说法组合起来，最终判断出谁是间谍
// 五个人中有两个间谍，间谍一定说真话，其他人一定说假话
// 输入时所有人的陈述，有两个整数：i表示指向的人，k为0/1表示是/不是间谍
// 最后要输出所有可能的情况数，如果没有可能的情况，输出0
// 通过双重循环去枚举 间谍的可能性，如果最后满足：所有人的陈述符合三真两假，就在情况计数变量中加1
// 最后输出情况计数变量的值
// 输入样例：
// 1 1 1 0 1 1 5 1 4 1
// 输出样例：
// 2
#include <iostream>
using namespace std;

int main()
{
    int man_said[6]{};
    int statement[6]{};
    int real_statement[6]{};
    int real_ID[6]{1, 1, 1, 1, 1, 1}; // 初始化所有人都是好人

    for (int i = 1; i <= 5; i++)
    {
        cin >> man_said[i] >> statement[i];
    }

    int count = 0;
    for (int i = 1; i <= 5; i++)
    {
        real_ID[i] = 0;
        for (int j = i + 1; j <= 5; j++)
        {
            real_ID[j] = 0;
            for (int k = 1; k <= 5; k++)
            {
                if (real_ID[k] == 1)
                {
                    real_statement[man_said[k]] = statement[k];
                }
                else
                {
                    real_statement[man_said[k]] = 1 - statement[k];
                }
                if (real_statement[man_said[k]] != real_ID[man_said[k]])
                {
                    break;
                }
                if (k == 5)
                {
                    count++;
                }
            }
            real_ID[j] = 1;
        }
        real_ID[i] = 1;
    }

    cout << count << endl;

    return 0;
}
